package com.dppd.indicadores.repository;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import org.springframework.transaction.annotation.Transactional;

import com.dppd.indicadores.domain.Partido;

@Repository
public class PartidoDAOImpl implements IPartidoDAO {

	@Autowired
	public JdbcTemplate JdbcTemplate;

	@Transactional
	public List<Partido> getListaPartidos() {

		String sql = "select * from PARTIDO";

		// Mapea de SQL a objetitos java
		RowMapper<Partido> mapper = new RowMapper<Partido>() {
			public Partido mapRow(ResultSet rs, int rowNum) throws SQLException {
				Partido partido = new Partido();
				partido.setCod_partido(rs.getInt("cod_partido"));
				partido.setNombre(rs.getString("nombre"));
				partido.setCod_area(rs.getInt("cod_area"));
				return partido;
			}

		};
		return this.getJdbcTemplate().query(sql, mapper);

	}

	@Transactional
	public void savePartido(Partido partido) {
		String sql = "INSERT INTO PARTIDO "
				+ "(nombre, cod_area) VALUES (?, ?)";
		this.getJdbcTemplate().update(sql,
				new Object[] { partido.getNombre(), partido.getCod_area() });

	}

	@Transactional
	public void removePartido(Partido partido) {
		//TODO

	}

	public JdbcTemplate getJdbcTemplate() {
		return JdbcTemplate;
	}

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		JdbcTemplate = jdbcTemplate;
	}

}
